package 集合泛型练习;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class List集合迭代练习 {

    public static void main(String[] args) {
        //定义List接口的多态对象
        List<String> list=new ArrayList<>();
        //给集合赋值
        list.add("我");
        list.add("好");
        list.add("想");
        list.add("你");
        list.add("啊");
        //集合的4个迭代器
        //1.for循环迭代
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));//通过循环遍历到的索引值获取对应的集合元素
        }
        System.out.println("******方法一******");
        //2.增强for循环
        for (String s :list) {
            System.out.println(s);
        }
        System.out.println("*******方式二******");
        //3,从父接口继承过来的迭代器
        Iterator<String> it=list.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("*******方式三*******");
        //4,listIterator属于 list接口特有的迭代器
        ListIterator <String> it2=list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println("*****方式四******");
        //倒叙遍历
        ListIterator <String> it3=list.listIterator();
        while (it3.hasNext()){
            System.out.println(it3.next());//打印正序
            if (!it3.hasNext()){
                System.out.println("我开始打印倒叙了");
                while (it3.hasPrevious()){
                    System.out.println(it3.previous());
                }
                break;
            }
        }

    }
}
